package com.open.api.wechat.app.request.condition;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Data;

/**
 * @author : zhaoxuan
 * @date : 2021/7/2 10:52
 * @description : WeChatUrLinkCondition
 * @version: 1.0
 */
@Data
@Builder
public class WeChatUrLinkCondition {

    /**
     * 是	通过 URL Link 进入的小程序页面路径，必须是已经发布的小程序存在的页面，不可携带 query 。path 为空时会跳转小程序主页
     */
    private String path;
    /**
     * 是	通过 URL Link 进入小程序时的query，最大1024个字符，只支持数字，大小写英文以及部分特殊字符：!#$&'()*+,/:;=?@-._~
     */
    private String query;
    /**
     * 否	生成的 URL Link 类型，到期失效：true，永久有效：false
     */
    @JsonProperty("is_expire")
    private Boolean isExpire = Boolean.FALSE;
    /**
     * 是	小程序 URL Link 失效类型，失效时间：0，失效间隔天数：1
     */
    @JsonProperty("expire_type")
    private Integer expireType;
    /**
     * 是	到期失效的 URL Link 的失效时间，为 Unix 时间戳。生成的到期失效 URL Link 在该时间前有效。最长有效期为1年。expire_type 为 0 必填
     */
    @JsonProperty("expire_time")
    private Integer expireTime;
    /**
     * 是	到期失效的URL Link的失效间隔天数。生成的到期失效URL Link在该间隔时间到达前有效。最长间隔天数为365天。expire_type 为 1 必填
     */
    @JsonProperty("expire_interval")
    private Integer expireInterval;
    /**
     * 否	云开发静态网站自定义 H5 配置参数，可配置中转的云开发 H5 页面。不填默认用官方 H5 页面
     */
    @JsonProperty("cloud_base")
    private cloudBase cloudBase;

    @Data
    public static class cloudBase{
        /**
         * 是	云开发环境
         */
        private String env;
        /**
         * 否	静态网站自定义域名，不填则使用默认域名
         */
        private String domain;
        /**
         * 否	云开发静态网站 H5 页面路径，不可携带 query
         */
        private String path;
        /**
         * 否	云开发静态网站 H5 页面 query 参数，最大 1024 个字符，只支持数字，大小写英文以及部分特殊字符：!#$&'()*+,/:;=?@-._~
         */
        private String query;
        /**
         * 否	第三方批量代云开发时必填，表示创建该 env 的 appid （小程序/第三方平台）
         */
        @JsonProperty("resource_appid")
        private String resourceAppid;
    }
}
